The integration degree of a field effect transistor (MOSFET: Metal Oxide Semiconductor Field Effect Transistor) in a semiconductor device has increased at a pace of four times in three years by a miniaturization technology.
In addition, usage of FPGA (Field Programmable Gate Array) or the like by which a designer can electrically reconfigure a desired function for a manufactured semiconductor device increases. However, in order for the FPGA to have the same function as a custom-designed semiconductor device, the number of transistors integrated larger by one or more orders of magnitude is required. Thus, a current FPGA had a problem in that the area efficiency is low and the power consumption is large.
In recent years, a study in which an overhead of the FPGA is reduced and the power consumption is reduced by mounting a variable resistance element on a circuit substrate of a multi-layer wiring layer and programming a resistance state of the variable resistance element is performed.
Examples of the variable resistance element include a ReRAM (Resistance Random access Memory) using a transition metal oxide and Nano bridge (registered trademark) using an ion conductor.
In PTL1 and NPL1, a variable resistance element using the movement of metal ions and electrochemical reactions with the use of a solid (ion conductor) in which ions can freely move by application of an electric field or the like is disclosed.
The variable resistance element is composed of an ion conduction layer, and a first electrode and a second electrode arranged with the ion conduction layer sandwiched therebetween. In this case, metal ions are supplied from the first electrode to the ion conduction layer, but metal ions are not supplied from the second electrode. A resistance value of the ion conductor is changed by changing the polarity of an applied voltage, thereby controlling a conduction state between the two electrodes.
In addition, in PTL1 and NPL1, a technique in which a variable resistance element is used for ULSI (Ultra-Large Scale Integration) as a crossbar switch is disclosed. The crossbar switch acts to switch wirings, and is used when recomposing a circuit element (reconfigurable logic circuit). Examples of the circuit element include a look-up table circuit (LUT circuit) for expressing an arbitrary truth value. FIG. 11 is a diagram illustrating such a LUT circuit 100.
The LUT circuit 100 includes a memory unit 101 for storing a truth value, an external signal input unit 102, and a data selection unit 103, and is configured such that the data selection unit 103 selects data from the memory unit 101 in accordance with an external signal (selection signal) from the external signal input unit 102 and outputs the data.
When the LUT circuit 100 is configured by a CMOS (Complementary Metal Oxide Semiconductor) circuit, generally, SRAM (Static Random access Memory) is widely used in the memory unit 101. Needless to say, the LUT circuit may be configured by using a variable resistance element in place of the SRAM.
In order to achieve the LUT circuit using the variable resistance element, it is considered that a crossbar switch having a configuration of n×2 (n: the number of input bits of the LUT circuit 100) is used in place of the SRAM as the memory unit 101 thereof. In the crossbar switch, variable resistance elements are connected to intersection points of column wirings with row wirings, and two variable resistance elements connected to row wirings are programmed (set) to be complementary in an L resistance state (hereinafter, L resistance state) and an H resistance state (hereinafter, H resistance state). Accordingly, one-bit data can be expressed. FIG. 12 is a diagram in which a crossbar switch 114 is configured by connecting variable resistance elements 113 (113a, 113b) to column wirings 111 (111a, 111b) and row wirings 112.
During operating the LUT circuit, one column wiring (for example, the column wiring 111a) is programmed to be a low voltage level, and the other column wiring (for example, the column wiring 111b) is programmed to be a high voltage level. Accordingly, each of row wirings 112 becomes the high voltage level or the low voltage level in accordance with a program condition. Hereinafter, the low voltage level is described as an L level, and the high voltage level is described as an H level.
It is to be noted that, in the present description, setting the variable resistance element to be in the H resistance state or the L resistance state is described as programming. The foregoing programming is performed by applying a predetermined voltage value to or making a current flow in the variable resistance element.
Signals of the row wirings 112 are inputted into a selection circuit (MUX) 115, and one signal is selected by the selection circuit 115. Therefore, the signal selected by the selection circuit 115 is read by a read circuit (not illustrated), so that the resistance state of the variable resistance element, that is, programmed and stored data can be read.